From f0d016ef382658f790f9cb689fb9b93baf569dc8 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 6 Oct 2004 05:11:36 +0000 Subject: [PATCH] Replace a really gross way of rounding to a specified number of digits. 2004-10-06 Matthias Clasen * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really gross way of rounding to a specified number of digits. (#145232, Peter Zelezny, patch by Soeren Sandmann) --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkrange.c | 13 ++++++++----- 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 255ddb4aa8..f7ca661a86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-10-06 Matthias Clasen + + * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really + gross way of rounding to a specified number of digits. (#145232, + Peter Zelezny, patch by Soeren Sandmann) + Wed Oct 6 00:45:04 2004 * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 255ddb4aa8..f7ca661a86 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +2004-10-06 Matthias Clasen + + * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really + gross way of rounding to a specified number of digits. (#145232, + Peter Zelezny, patch by Soeren Sandmann) + Wed Oct 6 00:45:04 2004 * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 255ddb4aa8..f7ca661a86 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +2004-10-06 Matthias Clasen + + * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really + gross way of rounding to a specified number of digits. (#145232, + Peter Zelezny, patch by Soeren Sandmann) + Wed Oct 6 00:45:04 2004 * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 255ddb4aa8..f7ca661a86 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +2004-10-06 Matthias Clasen + + * gtk/gtkrange.c (gtk_range_real_change_value): Replace a really + gross way of rounding to a specified number of digits. (#145232, + Peter Zelezny, patch by Soeren Sandmann) + Wed Oct 6 00:45:04 2004 * gdk/gdkwindow.c (gdk_window_is_viewable): check the iteration window diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c index fe0b7ab711..80240ef600 100644 --- a/gtk/gtkrange.c +++ b/gtk/gtkrange.c @@ -2390,12 +2390,15 @@ gtk_range_real_change_value (GtkRange *range, if (range->round_digits >= 0) { - char buffer[128]; + glong power; + gint i; - /* This is just so darn lame. */ - g_snprintf (buffer, 128, "%0.*f", - range->round_digits, value); - sscanf (buffer, "%lf", &value); + i = range->round_digits; + power = 1; + while (i--) + power *= 10; + + value = floor ((value * power) + 0.5) / power; } if (range->adjustment->value != value) -- 2.30.2